package com.huaxin.hxmodulesystem.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.huaxin.hxmodulesystem.dto.ResponseResult;
import com.huaxin.hxmodulesystem.dto.request.AddRoleReqDTO;
import com.huaxin.hxmodulesystem.dto.request.UpdateRoleReqDTO;
import com.huaxin.hxmodulesystem.models.Role;

import java.util.List;

public interface RoleService extends IService<Role> {
    /**
     * 添加供应商角色
     *
     * @param in 用户ID
     * @return 是否成功
     */
    ResponseResult<String> addRole(AddRoleReqDTO in);

    /**
     * 修改供应商角色
     *
     * @param in 用户ID
     * @return 是否成功
     */
    ResponseResult<String> updateRole(UpdateRoleReqDTO in);

    /**
     * 删除商角色
     *
     * @return 是否成功
     */
    ResponseResult<String> deleteRole(String id);

    /**
     * 根据用户ID查询角色
     *
     * @param userId 用户ID
     * @return 供应商角色列表
     */
    Role queryRole(String userId);

    /**
     * 查询所有角色
     *
     * @return 角色列表
     */
    ResponseResult<Page<Role>> queryAllRole(Integer pageNum, Integer pageSize, String roleName);

    /**
     * 给用户分配角色
     *
     * @param userId 用户ID
     * @return 是否成功
     */
    ResponseResult<String> assignRole(String userId, String roleId);
}